package com.ybl.store.backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ybl.store.backend.dao.entity.CustomerDO;
import com.ybl.store.backend.dto.req.CustomerSaveReqDTO;
import com.ybl.store.backend.dto.req.CustomerUpdateReqDTO;
import com.ybl.store.backend.dto.resp.CustomerRealNameRespDTO;
import com.ybl.store.backend.dto.resp.ListRespDTO;

public interface CustomerService extends IService<CustomerDO> {

    /**
     * 新增顾客
     *
     * @param requestParam 新增顾客请求参数
     */
    void saveCustomer(CustomerSaveReqDTO requestParam);

    /**
     * 删除顾客
     *
     * @param id 顾客 id
     */
    void deleteCustomerById(Long id);

    /**
     * 修改顾客
     *
     * @param requestParam 修改顾客请求参数
     */
    void updateCustomer(CustomerUpdateReqDTO requestParam);

    /**
     * 分页查询顾客
     *
     * @param pn 页码
     * @param ps 每页条目数
     * @param clerkId 店员 id
     * @param realName 真实姓名
     * @return 分页查询顾客响应参数
     */
    ListRespDTO<CustomerDO> pageCustomer(Integer pn, Integer ps, Long clerkId, String realName);

    /**
     * 查询顾客名列表
     *
     * @param clerkId 店员 id
     * @return 查询顾客名列表响应参数
     */
    ListRespDTO<CustomerRealNameRespDTO> listCustomerRealName(Long clerkId);
}
